/*
“删除重复项目” 的进阶：
如果重复最多被允许两次，又该怎么办呢？

例如：
给定排序数列 nums = [1,1,1,2,2,3]

你的函数应该返回长度为 5，nums 的前五个元素是 1, 1, 2, 2 和 3。
*/

class Solution
{
public:
    int removeDuplicates(vector<int> &nums)
    {
        if(nums.size() <= 2) return nums.size();
        int count = 0;
        int w = 0;
        for(int x = 1; x < nums.size(); x++) {
            if(nums[x] != nums[w]) {
                w++;
                nums[w] = nums[x];
                count = 0;
            } else if(count < 1) {
                count++;
                w++;
                nums[w] = nums[x];
            }
        }
        return w + 1;
    }
};